from matrix import *
import pygame
import random
import sys

DOWN = False

def read_log(filename):
    """Esta funcion pretende leer un log y luego simular el comportamiento
    con el CA"""

    # Abro el archivo de log
    log = open(filename, 'r')
    
    # Itero por las lineas del archivo
    for line in log:
        
        if line.find(';') != -1:
            # Entonces no estoy en una linea de logeo de datos
            continue
        
        # Separo los datos (estan en tipo string aun)
        data = line.split(',')
        
        agentes = 0
        
        # Cuento la cantidad de agentes
        while float(data[0]) == 0:
            agentes += 1
    
def event_handler():
    global DOWN, CLEAR
    LEFT = 1
    RIGHT = 3
    ret = []
    
    for event in pygame.event.get():
        
        if event.type == pygame.QUIT:
            sys.exit(0)
        elif event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
            DOWN = True
            ret.append(event.pos)
        elif event.type == pygame.MOUSEBUTTONUP:
            DOWN = False
        #        event = pygame.event.poll()
        elif event.type == pygame.MOUSEMOTION and DOWN:
            ret.append(event.pos)
        elif event.type == pygame.MOUSEBUTTONDOWN and event.button == RIGHT:
            CLEAR = True
    
    return ret
    
    
def read_from_file( matrix ):
    global VIVO, MUERTO

    file = raw_input('Nombre de archivo input: ')
    f = open(file, 'r')

    for line in f.readlines():
        # fila, columna
        data = line.strip(' ')
        data = data.split(',')
        fila = int(data[0])
        columna = int(data[1])
        matrix.set_value(fila,columna,VIVO)
        
def initial_matrix( matrix ):

    end = False
    while not end:
        input = raw_input('Ingrese celda (i,j) Ejemplo "(3,4) Enter" \n: ')
        input = input.strip(' ()')
        input = input.split(',')
        i = int(input[0].strip(' '))
        j = int(input[1].strip(' '))
        value = int(raw_input('Ingrese valor: '))
        c = matrix.set_value(i,j, value)
        end = raw_input('Terminar ingreso de datos? (s/n) ')[0]=='s'

def fill_random( matrix , values):
    
    for i in range(1,matrix.rows+1):
        for j in range(1,matrix.cols+1):
            matrix.set_value(i,j, random.choice( values ))
